-
-
Notifications
You must be signed in to change notification settings - Fork 107
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Make the lock a thread local variable #219
Conversation
Making the lock thread local shouldn't be a default. Instead, you should consider your use case to attach the lock to a thread local variable. |
I'm curious though: Is there ever a case where this would break someone? I guess if someone expected the object to be the same across threads.. but then why would they be using the lock to begin with? It seemed reasonable to think that the lock was similar to a Should it instead be documented that default behavior is not compatible with multithreading? |
My worry is about backwards compatibility. What if today someone attaches the lock to a thread local object. Wouldn't this break those people? Before today you could have used a global variable to lock out threads, however, this change would move that functionality to the file system level. Which could be an issue if the lock type is a soft file. |
If they did that, they would have to have done something like this already:
then use If they did something like this:
either way (with this change or without it) they would get
from inside the thread (so they need to recreate it). |
Okay, based on this I am willing to accept this tomorrow, however I would like you to stick around and handle any potential follow-up pull request that might be needed to address regressions introduced by this. Thank you |
Sure thing. If anything weird comes up, happy to help figure it out. (fingers crossed that it just works though :) ) |
I must agree that I can not think of a reason this would break "someone". I'm concerned this will somehow break something somewhere, as is the nature of these things. Perhaps a major version change? (v3.11 or v4). |
Just pointing out. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If you make
BaseFileLock
local, I believe this secondary lock can be removed completely.
Let's make the CI also pass.
For what it's worth, virtualenv already implements a custom wrapper around filelock to create this functionality. |
33c0726
to
ec6b246
Compare
2df9a89
to
9796392
Compare
@csm10495 seems pypy does not like it 🤔 |
What went wrong? pre-commit looks ok. Have a log? |
Check the CI those jobs just hang 🤷 |
.. oh lol. I'll probably come back to it a bit later, will set up pypy in wsl to see. |
... uhh umm:
...
.. interesting. Has it ever hung before? |
I can try to spinup a VM later to try a bit more in depth if we don't see something obvious |
Sometimes in the past, pypy is buggy 😆 we had to alter the code to support it. |
I spun-up an Ubuntu 20.04 LTS VM and still can't seem to get it to fail:
I'm running out of ideas to repro :/ |
So this is kind of weird: If I use
|
I'd be ok to disable coverage reporting for pypy... |
Maybe? Let me try debugging it a tiny bit more later today. If I still have no idea, then yeah i guess disable. |
@TheMatt2 with pypy? Or is that regular cpython? |
cpython. pypy ran in 47.8 seconds (of filelock before this PR)
|
@TheMatt2 Can you run the same pytest for pypy against this changeset instead of the one before it? |
Sure... oh interesting.
```
pypy3 -m pytest -vvv --cov
=========================================================================================== test session starts ============================================================================================
platform darwin -- Python 3.7.13[pypy-7.3.9-final], pytest-7.2.2, pluggy-1.0.0 -- /usr/local/bin/pypy3
cachedir: .pytest_cache
rootdir: .../py-filelock
plugins: timeout-2.1.0, mock-3.10.0, cov-4.0.0
collected 56 items
tests/test_error.py::test_timeout_str PASSED [ 1%] ================================================================================================= FAILURES ================================================================================================= tmp_path = PosixPath('.../pytest-5/test_thrashing_with_threadpool0'), lock_type = <class 'filelock._unix.UnixFileLock'>
tests/test_filelock.py:538: tests/test_filelock.py:538: in lock = <filelock._unix.UnixFileLock object at 0x00007fc5964f74b0>
E AssertionError: assert '' == '30550e77-d36e-4f61-8d63-f0797175de86' tests/test_filelock.py:529: AssertionError tmp_path = PosixPath('.../pytest-5/test_thrashing_with_threadpool1'), lock_type = <class 'filelock._soft.SoftFileLock'>
tests/test_filelock.py:538: tests/test_filelock.py:538: in lock = <filelock._soft.SoftFileLock object at 0x00007fc5958fb830>
E AssertionError: assert '193e41cf-9b40-4692-bce6-99d62a955a45' == 'b71e7bda-f44d-4852-82da-34acf75888d0' tests/test_filelock.py:529: AssertionError tmp_path = PosixPath('.../pytest-5/test_thrashing_with_threadpool2'), lock_type = <class 'filelock._unix.UnixFileLock'>
tests/test_filelock.py:563: tests/test_filelock.py:563: in txt_file = PosixPath('.../pytest-5/test_thrashing_with_threadpool2/test.txt')
E AssertionError: assert '' == '89c14325-6222-4f02-b872-1f6376fa3c2e' tests/test_filelock.py:554: AssertionError tmp_path = PosixPath('.../pytest-5/test_thrashing_with_threadpool3'), lock_type = <class 'filelock._soft.SoftFileLock'>
tests/test_filelock.py:563: tests/test_filelock.py:563: in txt_file = PosixPath('.../pytest-5/test_thrashing_with_threadpool3/test.txt')
E AssertionError: assert '' == '14be5b17-20ad-438b-aa51-7c116b1a8984' tests/test_filelock.py:554: AssertionError ---------- coverage: platform darwin, python 3.7.13-final-0 ----------
|
.. Well i didn't expect that at all. I get those failures when i forget to |
(Slightly blushing) um... yep that's what happened. I installed the dev version, but I didn't realize the default filelock was already installed... Let's try that again |
Code version in this PR 2017 Macbook Air macOS 12.6.4 Pypy passed in 21.63 seconds without coverage Cache emptied between tests
|
Phew. A pass with reasonable speed. Yeah I'm not sure why the hang is so long in ci. |
I've been unable to replicate the hang in pypy |
It seems the If so, this could be prevented by reducing the number of concurrent threads and increasing how many lock acquires are done per thread: |
Github actions VMs are always provisioned with 2 cores 🤔 See https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources |
Well... so much for that theory. Though, the reason that I'm still wondering if its possible these "hangs" are just really slow, not actual crashes. EDIT: Geez yeah. Also the CI is going on.. 20 minutes now? It was 20 seconds for the non-pypy test |
So I've put in #224, that will remove coverage reporting for pypy 👍 |
for more information, see https://pre-commit.ci
Signed-off-by: Bernát Gábor <bgabor8@bloomberg.net>
…ython run as root
902d659
to
a2ccce3
Compare
Interesting. The prior CI with coverage Ubuntu was canceled due to time on MacOS was canceled due to time on The tests I ran yesterday on MacOS that completed in reasonable times were done using pypy 3.8 Is this a pypy 3.9 issue? |
Update Ubuntu 22.10 Pypy 3.9
Test completed after
So it seems that this can complete given enough time. And it only takes 10 seconds if |
That long with multiple cores. I think with just 2 in ci, it's suppppper slow. |
I know this is closed now. But I thought I would add the final set of timing results on MacOS. 2017 MacBook Air with 2 hyperthreaded cores Test on Pypy 3.8: Finished with coverage in 47 seconds
Test on Pypy 3.9: Finished with coverage in 54 seconds
|
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [filelock](https://github.com/tox-dev/py-filelock) | `3.0.12` -> `3.12.2` | [![age](https://badges.renovateapi.com/packages/pypi/filelock/3.12.2/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/pypi/filelock/3.12.2/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/pypi/filelock/3.12.2/compatibility-slim/3.0.12)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/pypi/filelock/3.12.2/confidence-slim/3.0.12)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>tox-dev/py-filelock (filelock)</summary> ### [`v3.12.2`](https://github.com/tox-dev/py-filelock/releases/tag/3.12.2) [Compare Source](https://github.com/tox-dev/py-filelock/compare/3.12.1...3.12.2) #### What's Changed - Restore 'if TYPE_CHECKING' syntax for FileLock definition by [@​dlax](https://github.com/dlax) in [https://github.com/tox-dev/py-filelock/pull/245](https://github.com/tox-dev/py-filelock/pull/245) #### New Contributors - [@​dlax](https://github.com/dlax) made their first contribution in [https://github.com/tox-dev/py-filelock/pull/245](https://github.com/tox-dev/py-filelock/pull/245) **Full Changelog**: tox-dev/filelock@3.12.1...3.12.2 ### [`v3.12.1`](https://github.com/tox-dev/py-filelock/releases/tag/3.12.1) [Compare Source](https://github.com/tox-dev/py-filelock/compare/3.12.0...3.12.1) ##### What's Changed - Add trusted-publish by [@​gaborbernat](https://github.com/gaborbernat) in [https://github.com/tox-dev/py-filelock/pull/236](https://github.com/tox-dev/py-filelock/pull/236) - Add 3.12 support by [@​gaborbernat](https://github.com/gaborbernat) in [https://github.com/tox-dev/py-filelock/pull/237](https://github.com/tox-dev/py-filelock/pull/237) - Bump pypa/gh-action-pypi-publish from 1.8.5 to 1.8.6 by [@​dependabot](https://github.com/dependabot) in [https://github.com/tox-dev/py-filelock/pull/239](https://github.com/tox-dev/py-filelock/pull/239) - git ls-files -z -- .github/workflows/check.yml | xargs -0 sed -i 's|3.12.0-alpha.7|3.12.0-beta.1|g' by [@​gaborbernat](https://github.com/gaborbernat) in [https://github.com/tox-dev/py-filelock/pull/243](https://github.com/tox-dev/py-filelock/pull/243) - Use ruff by [@​gaborbernat](https://github.com/gaborbernat) in [https://github.com/tox-dev/py-filelock/pull/244](https://github.com/tox-dev/py-filelock/pull/244) - Fix test_bad_lock_file for other OSes by [@​TheMatt2](https://github.com/TheMatt2) in [https://github.com/tox-dev/py-filelock/pull/242](https://github.com/tox-dev/py-filelock/pull/242) **Full Changelog**: tox-dev/filelock@3.12.0...3.12.1 ### [`v3.12.0`](https://github.com/tox-dev/py-filelock/releases/tag/3.12.0) [Compare Source](https://github.com/tox-dev/py-filelock/compare/3.11.0...3.12.0) #### What's Changed - Fix: [#​225](https://github.com/tox-dev/py-filelock/issues/225) :Get rid of warning about inability to link to \_thread.\_local. by [@​csm10495](https://github.com/csm10495) in [https://github.com/tox-dev/py-filelock/pull/226](https://github.com/tox-dev/py-filelock/pull/226) - Bump deps and tools by [@​gaborbernat](https://github.com/gaborbernat) in [https://github.com/tox-dev/py-filelock/pull/228](https://github.com/tox-dev/py-filelock/pull/228) - Add umask check to tests so umask 002 is valid by [@​TheMatt2](https://github.com/TheMatt2) in [https://github.com/tox-dev/py-filelock/pull/227](https://github.com/tox-dev/py-filelock/pull/227) - Fix lock hang on Windows by [@​TheMatt2](https://github.com/TheMatt2) in [https://github.com/tox-dev/py-filelock/pull/231](https://github.com/tox-dev/py-filelock/pull/231) - Conditionally disable/enable thread-local lock behavior. by [@​csm10495](https://github.com/csm10495) in [https://github.com/tox-dev/py-filelock/pull/232](https://github.com/tox-dev/py-filelock/pull/232) **Full Changelog**: tox-dev/filelock@3.11.0...3.12.0 ### [`v3.11.0`](https://github.com/tox-dev/py-filelock/releases/tag/3.11.0) [Compare Source](https://github.com/tox-dev/py-filelock/compare/3.10.7...3.11.0) #### What's Changed - Bump pypa/gh-action-pypi-publish from 1.8.3 to 1.8.5 by [@​dependabot](https://github.com/dependabot) in [https://github.com/tox-dev/py-filelock/pull/218](https://github.com/tox-dev/py-filelock/pull/218) - Fix [#​220](https://github.com/tox-dev/py-filelock/issues/220): Allow filelock test thread to catch any exceptions by [@​TheMatt2](https://github.com/TheMatt2) in [https://github.com/tox-dev/py-filelock/pull/221](https://github.com/tox-dev/py-filelock/pull/221) - Bump deps and tools by [@​gaborbernat](https://github.com/gaborbernat) in [https://github.com/tox-dev/py-filelock/pull/222](https://github.com/tox-dev/py-filelock/pull/222) - Run more pypy versions in CI but without coverage by [@​gaborbernat](https://github.com/gaborbernat) in [https://github.com/tox-dev/py-filelock/pull/224](https://github.com/tox-dev/py-filelock/pull/224) - Make the lock a thread local variable by [@​csm10495](https://github.com/csm10495) in [https://github.com/tox-dev/py-filelock/pull/219](https://github.com/tox-dev/py-filelock/pull/219) #### New Contributors - [@​csm10495](https://github.com/csm10495) made their first contribution in [https://github.com/tox-dev/py-filelock/pull/219](https://github.com/tox-dev/py-filelock/pull/219) **Full Changelog**: tox-dev/filelock@3.10.7...3.11.0 ### [`v3.10.7`](https://github.com/tox-dev/py-filelock/releases/tag/3.10.7) [Compare Source](https://github.com/tox-dev/py-filelock/compare/3.10.6...3.10.7) #### What's Changed - use fchmod by [@​jfennick](https://github.com/jfennick) in [https://github.com/tox-dev/py-filelock/pull/214](https://github.com/tox-dev/py-filelock/pull/214) #### New Contributors - [@​jfennick](https://github.com/jfennick) made their first contribution in [https://github.com/tox-dev/py-filelock/pull/214](https://github.com/tox-dev/py-filelock/pull/214) **Full Changelog**: tox-dev/filelock@3.10.6...3.10.7 ### [`v3.10.6`](https://github.com/tox-dev/py-filelock/releases/tag/3.10.6) [Compare Source](https://github.com/tox-dev/py-filelock/compare/3.10.5...3.10.6) #### What's Changed - Bugfix/147 by [@​jahrules](https://github.com/jahrules) in [https://github.com/tox-dev/py-filelock/pull/213](https://github.com/tox-dev/py-filelock/pull/213) **Full Changelog**: tox-dev/filelock@3.10.5...3.10.6 ### [`v3.10.5`](https://github.com/tox-dev/py-filelock/releases/tag/3.10.5) [Compare Source](https://github.com/tox-dev/py-filelock/compare/3.10.4...3.10.5) #### What's Changed - proposed fix for issue [#​67](https://github.com/tox-dev/py-filelock/issues/67) by [@​jahrules](https://github.com/jahrules) in [https://github.com/tox-dev/py-filelock/pull/212](https://github.com/tox-dev/py-filelock/pull/212) **Full Changelog**: tox-dev/filelock@3.10.4...3.10.5 ### [`v3.10.4`](https://github.com/tox-dev/py-filelock/releases/tag/3.10.4) [Compare Source](https://github.com/tox-dev/py-filelock/compare/3.10.3...3.10.4) #### What's Changed - updated os.open to preserve mode by [@​jahrules](https://github.com/jahrules) in [https://github.com/tox-dev/py-filelock/pull/211](https://github.com/tox-dev/py-filelock/pull/211) **Full Changelog**: tox-dev/filelock@3.10.3...3.10.4 ### [`v3.10.3`](https://github.com/tox-dev/py-filelock/releases/tag/3.10.3) [Compare Source](https://github.com/tox-dev/py-filelock/compare/3.10.2...3.10.3) #### What's Changed - Bump pypa/gh-action-pypi-publish from 1.8.1 to 1.8.3 by [@​dependabot](https://github.com/dependabot) in [https://github.com/tox-dev/py-filelock/pull/207](https://github.com/tox-dev/py-filelock/pull/207) - bug fix by [@​jahrules](https://github.com/jahrules) in [https://github.com/tox-dev/py-filelock/pull/209](https://github.com/tox-dev/py-filelock/pull/209) **Full Changelog**: tox-dev/filelock@3.10.2...3.10.3 ### [`v3.10.2`](https://github.com/tox-dev/py-filelock/releases/tag/3.10.2) [Compare Source](https://github.com/tox-dev/py-filelock/compare/3.10.1...3.10.2) #### What's Changed - changed from os.umask to os.chmod by [@​jahrules](https://github.com/jahrules) in [https://github.com/tox-dev/py-filelock/pull/206](https://github.com/tox-dev/py-filelock/pull/206) **Full Changelog**: tox-dev/filelock@3.10.1...3.10.2 ### [`v3.10.1`](https://github.com/tox-dev/py-filelock/releases/tag/3.10.1) [Compare Source](https://github.com/tox-dev/py-filelock/compare/3.10.0...3.10.1) #### What's Changed - Bump pypa/gh-action-pypi-publish from 1.7.1 to 1.8.1 by [@​dependabot](https://github.com/dependabot) in [https://github.com/tox-dev/py-filelock/pull/200](https://github.com/tox-dev/py-filelock/pull/200) - Bump deps and tools by [@​gaborbernat](https://github.com/gaborbernat) in [https://github.com/tox-dev/py-filelock/pull/201](https://github.com/tox-dev/py-filelock/pull/201) - Properly pickle of Timeout objects + test cases by [@​TheMatt2](https://github.com/TheMatt2) in [https://github.com/tox-dev/py-filelock/pull/203](https://github.com/tox-dev/py-filelock/pull/203) #### New Contributors - [@​TheMatt2](https://github.com/TheMatt2) made their first contribution in [https://github.com/tox-dev/py-filelock/pull/203](https://github.com/tox-dev/py-filelock/pull/203) **Full Changelog**: tox-dev/filelock@3.10.0...3.10.1 ### [`v3.10.0`](https://github.com/tox-dev/py-filelock/releases/tag/3.10.0) [Compare Source](https://github.com/tox-dev/py-filelock/compare/3.9.1...3.10.0) #### What's Changed - added multiuser support and associated tests by [@​jahrules](https://github.com/jahrules) in [https://github.com/tox-dev/py-filelock/pull/192](https://github.com/tox-dev/py-filelock/pull/192) #### New Contributors - [@​jahrules](https://github.com/jahrules) made their first contribution in [https://github.com/tox-dev/py-filelock/pull/192](https://github.com/tox-dev/py-filelock/pull/192) **Full Changelog**: tox-dev/filelock@3.9.1...3.10.0 ### [`v3.9.1`](https://github.com/tox-dev/py-filelock/releases/tag/3.9.1) [Compare Source](https://github.com/tox-dev/py-filelock/compare/3.9.0...3.9.1) #### What's Changed - \[pre-commit.ci] pre-commit autoupdate by [@​pre-commit-ci](https://github.com/pre-commit-ci) in [https://github.com/tox-dev/py-filelock/pull/188](https://github.com/tox-dev/py-filelock/pull/188) - Bump deps and tools by [@​gaborbernat](https://github.com/gaborbernat) in [https://github.com/tox-dev/py-filelock/pull/193](https://github.com/tox-dev/py-filelock/pull/193) - Bump deps and tools by [@​gaborbernat](https://github.com/gaborbernat) in [https://github.com/tox-dev/py-filelock/pull/197](https://github.com/tox-dev/py-filelock/pull/197) - Bump pypa/gh-action-pypi-publish from 1.6.4 to 1.7.1 by [@​dependabot](https://github.com/dependabot) in [https://github.com/tox-dev/py-filelock/pull/198](https://github.com/tox-dev/py-filelock/pull/198) - use time.perf_counter instead of time.monotonic by [@​zpz](https://github.com/zpz) in [https://github.com/tox-dev/py-filelock/pull/194](https://github.com/tox-dev/py-filelock/pull/194) #### New Contributors - [@​zpz](https://github.com/zpz) made their first contribution in [https://github.com/tox-dev/py-filelock/pull/194](https://github.com/tox-dev/py-filelock/pull/194) **Full Changelog**: tox-dev/filelock@3.9.0...3.9.1 ### [`v3.9.0`](https://github.com/tox-dev/py-filelock/releases/tag/3.9.0) [Compare Source](https://github.com/tox-dev/py-filelock/compare/3.8.2...3.9.0) #### What's Changed - Move to hatchling build backend by [@​gaborbernat](https://github.com/gaborbernat) in [https://github.com/tox-dev/py-filelock/pull/185](https://github.com/tox-dev/py-filelock/pull/185) **Full Changelog**: tox-dev/filelock@3.8.2...3.9.0 ### [`v3.8.2`](https://github.com/tox-dev/py-filelock/releases/tag/3.8.2) [Compare Source](https://github.com/tox-dev/py-filelock/compare/3.8.1...3.8.2) #### What's Changed - Bump pypa/gh-action-pypi-publish from 1.5.1 to 1.6.1 by [@​dependabot](https://github.com/dependabot) in [https://github.com/tox-dev/py-filelock/pull/178](https://github.com/tox-dev/py-filelock/pull/178) - Update the license classifier to "Unlicense" by [@​jond01](https://github.com/jond01) in [https://github.com/tox-dev/py-filelock/pull/180](https://github.com/tox-dev/py-filelock/pull/180) #### New Contributors - [@​jond01](https://github.com/jond01) made their first contribution in [https://github.com/tox-dev/py-filelock/pull/180](https://github.com/tox-dev/py-filelock/pull/180) **Full Changelog**: tox-dev/filelock@3.8.1...3.8.2 ### [`v3.8.1`](https://github.com/tox-dev/py-filelock/releases/tag/3.8.1) [Compare Source](https://github.com/tox-dev/py-filelock/compare/3.8.0...3.8.1) #### What's Changed - \[pre-commit.ci] pre-commit autoupdate by [@​pre-commit-ci](https://github.com/pre-commit-ci) in [https://github.com/tox-dev/py-filelock/pull/166](https://github.com/tox-dev/py-filelock/pull/166) - link to flufl.lock by [@​dholth](https://github.com/dholth) in [https://github.com/tox-dev/py-filelock/pull/167](https://github.com/tox-dev/py-filelock/pull/167) - \[pre-commit.ci] pre-commit autoupdate by [@​pre-commit-ci](https://github.com/pre-commit-ci) in [https://github.com/tox-dev/py-filelock/pull/168](https://github.com/tox-dev/py-filelock/pull/168) - \[pre-commit.ci] pre-commit autoupdate by [@​pre-commit-ci](https://github.com/pre-commit-ci) in [https://github.com/tox-dev/py-filelock/pull/169](https://github.com/tox-dev/py-filelock/pull/169) - \[pre-commit.ci] pre-commit autoupdate by [@​pre-commit-ci](https://github.com/pre-commit-ci) in [https://github.com/tox-dev/py-filelock/pull/170](https://github.com/tox-dev/py-filelock/pull/170) - fix BaseFileLock.timeout's getter/setter being obscured by itself by [@​dearfl](https://github.com/dearfl) in [https://github.com/tox-dev/py-filelock/pull/172](https://github.com/tox-dev/py-filelock/pull/172) - Fix mypy fails understanding FileLock by [@​gaborbernat](https://github.com/gaborbernat) in [https://github.com/tox-dev/py-filelock/pull/177](https://github.com/tox-dev/py-filelock/pull/177) #### New Contributors - [@​dholth](https://github.com/dholth) made their first contribution in [https://github.com/tox-dev/py-filelock/pull/167](https://github.com/tox-dev/py-filelock/pull/167) - [@​dearfl](https://github.com/dearfl) made their first contribution in [https://github.com/tox-dev/py-filelock/pull/172](https://github.com/tox-dev/py-filelock/pull/172) **Full Changelog**: tox-dev/filelock@3.8.0...3.8.1 ### [`v3.8.0`](https://github.com/tox-dev/py-filelock/releases/tag/3.8.0) [Compare Source](https://github.com/tox-dev/py-filelock/compare/3.7.1...3.8.0) #### What's Changed - \[pre-commit.ci] pre-commit autoupdate by [@​pre-commit-ci](https://github.com/pre-commit-ci) in [https://github.com/tox-dev/py-filelock/pull/149](https://github.com/tox-dev/py-filelock/pull/149) - Bump actions/upload-artifact from 2 to 3 by [@​dependabot](https://github.com/dependabot) in [https://github.com/tox-dev/py-filelock/pull/154](https://github.com/tox-dev/py-filelock/pull/154) - Bump actions/download-artifact from 2 to 3 by [@​dependabot](https://github.com/dependabot) in [https://github.com/tox-dev/py-filelock/pull/152](https://github.com/tox-dev/py-filelock/pull/152) - Bump pre-commit/action from 2.0.3 to 3.0.0 by [@​dependabot](https://github.com/dependabot) in [https://github.com/tox-dev/py-filelock/pull/151](https://github.com/tox-dev/py-filelock/pull/151) - Bump actions/checkout from 2 to 3 by [@​dependabot](https://github.com/dependabot) in [https://github.com/tox-dev/py-filelock/pull/153](https://github.com/tox-dev/py-filelock/pull/153) - Bump actions/setup-python from 2 to 4 by [@​dependabot](https://github.com/dependabot) in [https://github.com/tox-dev/py-filelock/pull/150](https://github.com/tox-dev/py-filelock/pull/150) - Add timeout unit to docstrings by [@​jnordberg](https://github.com/jnordberg) in [https://github.com/tox-dev/py-filelock/pull/148](https://github.com/tox-dev/py-filelock/pull/148) - Unify badges style by [@​DeadNews](https://github.com/DeadNews) in [https://github.com/tox-dev/py-filelock/pull/155](https://github.com/tox-dev/py-filelock/pull/155) - \[pre-commit.ci] pre-commit autoupdate by [@​pre-commit-ci](https://github.com/pre-commit-ci) in [https://github.com/tox-dev/py-filelock/pull/156](https://github.com/tox-dev/py-filelock/pull/156) - \[pre-commit.ci] pre-commit autoupdate by [@​pre-commit-ci](https://github.com/pre-commit-ci) in [https://github.com/tox-dev/py-filelock/pull/157](https://github.com/tox-dev/py-filelock/pull/157) - Check 3.11 support by [@​gaborbernat](https://github.com/gaborbernat) in [https://github.com/tox-dev/py-filelock/pull/158](https://github.com/tox-dev/py-filelock/pull/158) - \[pre-commit.ci] pre-commit autoupdate by [@​pre-commit-ci](https://github.com/pre-commit-ci) in [https://github.com/tox-dev/py-filelock/pull/159](https://github.com/tox-dev/py-filelock/pull/159) - Bump dependencies by [@​gaborbernat](https://github.com/gaborbernat) in [https://github.com/tox-dev/py-filelock/pull/160](https://github.com/tox-dev/py-filelock/pull/160) - \[pre-commit.ci] pre-commit autoupdate by [@​pre-commit-ci](https://github.com/pre-commit-ci) in [https://github.com/tox-dev/py-filelock/pull/162](https://github.com/tox-dev/py-filelock/pull/162) #### New Contributors - [@​dependabot](https://github.com/dependabot) made their first contribution in [https://github.com/tox-dev/py-filelock/pull/154](https://github.com/tox-dev/py-filelock/pull/154) - [@​jnordberg](https://github.com/jnordberg) made their first contribution in [https://github.com/tox-dev/py-filelock/pull/148](https://github.com/tox-dev/py-filelock/pull/148) - [@​DeadNews](https://github.com/DeadNews) made their first contribution in [https://github.com/tox-dev/py-filelock/pull/155](https://github.com/tox-dev/py-filelock/pull/155) **Full Changelog**: tox-dev/filelock@3.7.1...3.8.0 ### [`v3.7.1`](https://github.com/tox-dev/py-filelock/compare/3.7.0...3.7.1) [Compare Source](https://github.com/tox-dev/py-filelock/compare/3.7.0...3.7.1) ### [`v3.7.0`](https://github.com/tox-dev/py-filelock/compare/3.6.0...3.7.0) [Compare Source](https://github.com/tox-dev/py-filelock/compare/3.6.0...3.7.0) ### [`v3.6.0`](https://github.com/tox-dev/py-filelock/compare/3.5.1...3.6.0) [Compare Source](https://github.com/tox-dev/py-filelock/compare/3.5.1...3.6.0) ### [`v3.5.1`](https://github.com/tox-dev/py-filelock/compare/3.5.0...3.5.1) [Compare Source](https://github.com/tox-dev/py-filelock/compare/3.5.0...3.5.1) ### [`v3.5.0`](https://github.com/tox-dev/py-filelock/compare/3.4.2...3.5.0) [Compare Source](https://github.com/tox-dev/py-filelock/compare/3.4.2...3.5.0) ### [`v3.4.2`](https://github.com/tox-dev/py-filelock/releases/tag/3.4.2): Drop Python 3.6 support [Compare Source](https://github.com/tox-dev/py-filelock/compare/3.4.1...3.4.2) ### [`v3.4.1`](https://github.com/tox-dev/py-filelock/releases/tag/3.4.1): Add stacklevel to deprecation warnings for argument name change [Compare Source](https://github.com/tox-dev/py-filelock/compare/3.4.0...3.4.1) ### [`v3.4.0`](https://github.com/tox-dev/py-filelock/compare/3.3.2...3.4.0) [Compare Source](https://github.com/tox-dev/py-filelock/compare/3.3.2...3.4.0) ### [`v3.3.2`](https://github.com/tox-dev/py-filelock/compare/3.3.1...3.3.2) [Compare Source](https://github.com/tox-dev/py-filelock/compare/3.3.1...3.3.2) ### [`v3.3.1`](https://github.com/tox-dev/py-filelock/releases/tag/3.3.1): Keep filelock logger as not set [Compare Source](https://github.com/tox-dev/py-filelock/compare/3.3.0...3.3.1) ### [`v3.3.0`](https://github.com/tox-dev/py-filelock/releases/tag/3.3.0): Drop python 2.7+3.5 support and add type annotations [Compare Source](https://github.com/tox-dev/py-filelock/compare/3.2.1...3.3.0) ### [`v3.2.1`](https://github.com/tox-dev/py-filelock/releases/tag/3.2.1): New documentation and enable logging of our logger on debug level [Compare Source](https://github.com/tox-dev/py-filelock/compare/3.2.0...3.2.1) ### [`v3.2.0`](https://github.com/tox-dev/py-filelock/releases/tag/3.2.0) [Compare Source](https://github.com/tox-dev/py-filelock/compare/3.1.0...3.2.0) 1. [#​96](https://github.com/tox-dev/py-filelock/issues/96) - Raise when trying to acquire in R/O or missing folder 2. [#​95](https://github.com/tox-dev/py-filelock/issues/95) - Move log from info to debug ### [`v3.1.0`](https://github.com/tox-dev/py-filelock/releases/tag/3.1.0): Move from module file to package [Compare Source](https://github.com/tox-dev/py-filelock/compare/v3.0.12...3.1.0) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/matfax/mutapath). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi41LjMiLCJ1cGRhdGVkSW5WZXIiOiIzNi41LjMiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=--> Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Fixes #82
With this, i can successfully run on win32 and on wsl (ubuntu)
(which is a version of the original failing code from #82 )